/*
 * Task.h
 *
 *  Created on: Oct 18, 2012
 *      Author: David Kadlecek, Ales Fiser
 */
#include "general.h"

#ifndef TASK_H_
#define TASK_H_

class Task {
private:
	int* actualState;
	int* maxJob;
	int numOfNodes;
	int depth;

	void logPrintTask();

public:
	void init();
	Task();
	virtual ~Task();
	int nexByInreaseDepth();
	void decreaseDepth();
	int nextByWidth();
	void createFullTask(int numberOfNodes);
	Task** split(int numbterOfNewTasks);
	bool haveWork();
	int* getActualState();
	int getDepth();
};

#endif /* TASK_H_ */
